<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="../js/vue.js"></script>
  <style>
    * {
      margin-top: 20px;
    }
    .demo1 {
      height: 50px;
      background-color: skyblue;
    }
    .list {
      height: 200px;
      overflow-y: scroll;
    }
    .list li {
      height: 100px;
    }
  </style>
</head>
<body>
  <!-- 
    Vue中的事件修饰符：
      1. prevent 阻止默认事件（常用）；
      2. stop 阻止事件冒泡（常用）；
      3. once 事件只处罚一次（常用）；
      4. capture 使用事件的捕获模式；
      5. self 只有event.target是当前操作的元素时才触发事件；
      6. passive 事件的默认行为立即执行，无需等待事件回调执行完毕。
   -->
  <div id="root">
    <a href="http://www.atguigu.com" @click.prevent="showInfo">点击1{{name}}</a>
    
    <div class="demo1" @click="showInfo">
      <!-- 修饰符可以连续写 -->
      <a href="http://www.atguigu.com" @click.stop.prevent="showInfo">点我提示信息</a>
    </div>

    <!-- 只有event.target是当前操作的元素时才触发事件 不加.self点击button 输出两个button,加了之后点击button输出一次button -->
    <div class="demo1" @click.self="showInfo">
      <button @click="showInfo">点我提示信息</button>
    </div>
    <!-- 事件的默认行为立即执行，无需等待事件回调执行完毕 -->
    <!-- <ul class="list" @scroll="demo"> -->
    <ul class="list" @wheel="demo">
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
    </ul>
  </div>
  <script>
    Vue.config.productionTip = false; // 阻止vue在启动时生成生产提示。
    const vm = new Vue({
      el: "#root",
      data: {
        name: '名字'
      },
      methods: {
        showInfo() {
          // event.preventDefault()
          // event.stopPropagation()
          console.log('你好')
        },
        demo() {
          for(let i=1;i<1000;i++) {
            console.log('#')
          }
          console.log('累坏了')
        }
      }
    })
  </script>
</body>
</html>